Systems and methods for creating an interstitial ad experience within a scrolling content frame

ABSTRACT

Systems and methods for controlling the display of content of information resources are described herein. The system can receive a request for an information resource from a client device. The system can transmit the information resource that can include a first content portion, a second content portion, and a content display management script. The content display management script can include instructions that can cause the client device to: (a) set a scroll range of the information resource from a first location to a second location in the information resource; (b) display, within a portion of the information resource between the first location and the second location, the first content portion and an ad that can include actionable item; and (c) set, responsive to detecting an interaction on the actionable item, the scroll range from the first location to a third location of the information resource.

CROSS REFERENCES TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Application No.62/208,175, titled “Systems and Methods for Creating an Interstitial AdExperience Within a Scrolling Content Frame,” filed on Aug. 21, 2015,which is hereby incorporated by reference in its entirety.

BACKGROUND

In a computer networked environment such as the internet, third-partycontent providers provide third-party content items for display onend-user computing devices. These third-party content items, forexample, advertisements, can be linked to web pages associated with thethird-party content providers. These third-party content items caninclude content identifying the third-party content provider thatprovided the content item.

SUMMARY

At least one aspect is directed to a method of controlling the displayof content of information resources. The method can include receiving arequest for an information resource from an application executing on aclient device. The method can include transmitting the informationresource to the client device. The information resource can include atleast a first content portion, a second content portion, and a contentdisplay management script. The content display management script caninclude computer-executable instructions, which when executed by aprocessor of the client device, can cause an application of the clientdevice to set a scroll range of the information resource to a firstrange extending from a first location in the information resource to asecond location in the information resource. The computer-executableinstructions can cause the application of the client device to display,within a portion of the information resource between the first locationand the second location, the first content portion and an ad. The ad caninclude an actionable item to set the scroll range of the informationresource to a second range. The computer-executable instructions cancause the application of the client device to set, responsive todetecting an interaction on the actionable item of the ad, the scrollrange to the second range extending from the first location to a thirdlocation of the information resource.

In some implementations, the computer-executable instructions of thecontent display management script can further cause the application ofthe client device to identify the first location in the informationresource based on a first end of the first content portion and identifythe second location in the information resource based on a second end ofthe ad. In some implementations, the computer-executable instructions ofthe content display management script can further cause the applicationof the client device to remove the actionable item from display on theinformation resource, responsive to detecting the interaction on theactionable item of the content item from the client device. In someimplementations, the computer-executable instructions of the contentdisplay management script can further cause the application of theclient device to determine an amount of time that the ad has beendisplayed on the information resource and, responsive to determiningthat the amount of time exceeds a predefined time threshold, enable theactionable item on the content item to receive the interaction.

In some implementations, the computer-executable instructions of thecontent display management script can further cause the application ofthe client device to insert the ad between the first content portion andthe second content portion and identify the second location based on aposition of the ad within the information resource. In someimplementations, inserting the ad between the first content portion andthe second content portion can include determining a size of a viewportof the application and determining the second location within theinformation resource such that when a scroll position of the applicationis at the second location, the ad occupies more than a predeterminedpercentage of pixels defined by the viewport. In some implementations,the computer-executable instructions of the content display managementscript can further cause the application of the client device to insert,for display, a second ad including a second actionable item between thesecond location of the information resource and the third location ofthe information resource. In some implementations, thecomputer-executable instructions of the content display managementscript can further cause the application of the client device to set,responsive to detecting a second interaction on the second actionableitem of the second ad, the scroll range to a third range extending fromthe first location to a fourth location of the information resource.

At least one aspect is directed to a method of controlling the displayof content of information resources. The method can include receiving aninformation resource from a server. The information resource can includeat least a first content portion, a second content portion, and acontent display management script. The method can include invoking thecontent display management script responsive to receiving theinformation resource. The method can include setting, responsive toinvoking the content display management script, by the client device, ascroll range of the information resource to a first range extending froma first location in the information resource to a second location in theinformation resource. The method can include displaying, within aportion of the information resource between the first location and thesecond location, the first content portion and an ad, the ad includingan actionable item to set the scroll range of the information resourceto a second range. The method can include setting, responsive todetecting the interaction on the actionable item of the ad, the scrollrange to the second range extending from the first location to a thirdlocation of the information resource.

In some implementations, the method can further include identifying thefirst location in the information resource based on a first end of thefirst content portion. In some implementations, the method can furtherinclude identifying the second location in the information resourcebased on a second end of the ad. In some implementations, the method canfurther include removing the actionable item from display on theinformation resource responsive to detecting the interaction on theactionable item of the content item from the client device. In someimplementations, the method can further include determining an amount oftime that the ad has been displayed on the information resource. In someimplementations, the method can further include enabling, responsive todetermining that the amount of time exceeds a predefined time threshold,the actionable item on the content item to receive the interaction.

In some implementations, the method can further include determining asize of a viewport of the application and determining the secondlocation within the information resource such that when a scrollposition of the application is at the second location the ad occupiesmore than a predetermined percentage of pixels defined by the viewport.In some implementations, the method can further include inserting, fordisplay, a second ad including a second actionable item between thesecond location of the information resource and the third location ofthe information resource. In some implementations, the method canfurther include setting, responsive to detecting a second interaction onthe second actionable item of the second ad, the scroll range to a thirdrange extending from the first location to a fourth location of theinformation resource.

At least one aspect is directed to a system for controlling the displayof content of information resources. The system can include a scrollrange setting module executed on one or more processors that can set ascroll range of an information resource to a first range extending froma first location in the information resource to a second location in theinformation resource. The information resource can include at least afirst content portion and a second content portion. The system caninclude a content display module executed on the one or more processorsthat can display within a portion of the information resource on anapplication between the first location and the second location, thefirst content portion and an ad. The ad can include an actionable itemto set the scroll range of the information resource to a second range.The system can include a content item interaction detection moduleexecuted on the one or more processors that can detect an interaction onthe actionable item of the ad. The scroll range setting module can setthe scroll range to the second range extending from the first locationto a third location of the information resource, responsive to detectingan interaction on the actionable item of the ad.

In some implementations, the scroll range setting module can identifythe first location in the information resource based on an initial endof the first content portion. In some implementations, the scroll rangesetting module can identify the second location in the informationresource based on a final end of the advertisement. In someimplementations, the scroll range setting module can insert the adbetween the first content portion and the second content portion and candetermine the second location based on a position of the ad within theinformation resource. In some implementations, the scroll range settingmodule can determine a size of a viewport of the application and candetermine the second location within the information resource such thatwhen a scroll position of the application is at the second location, thead occupies more than a predetermined percentage of pixels defined bythe viewport. In some implementations, the scroll range setting modulecan insert, for display, a second ad including a second actionable itembetween the second location of the information resource and the thirdlocation of the information resource. In some implementations, thescroll range setting module can set, responsive to detecting a secondinteraction on the second actionable item of the second ad, the scrollrange to a third range extending from the first location to a fourthlocation of the information resource.

In some implementations, the content item interaction detection modulecan remove the actionable item from display on the information resource,responsive to detecting the interaction on the actionable item of thecontent item from the client device. In some implementations, thecontent item interaction detection module can determine an amount oftime that the first content portion has been provided for display on theinformation resource. In some implementations, the content iteminteraction detection module can enable, responsive to determining thatthe amount of time exceeds a predefined time threshold, the actionableitem on the content item to receive the interaction.

These and other aspects and implementations are discussed in detailbelow. The foregoing information and the following detailed descriptioninclude illustrative examples of various aspects and implementations,and provide an overview or framework for understanding the nature andcharacter of the claimed aspects and implementations. The drawingsprovide illustration and a further understanding of the various aspectsand implementations, and are incorporated in and constitute a part ofthis specification.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not intended to be drawn to scale. Likereference numbers and designations in the various drawings indicate likeelements. For purposes of clarity, not every component may be labeled inevery drawing. In the drawings:

FIG. 1 is a block diagram depicting one implementation of an environmentfor controlling the display of content of information resources in acomputer network environment, according to an illustrativeimplementation;

FIG. 2 is a block diagram depicting one implementation of a contentdisplay management system, according to an illustrative implementation;

FIG. 3A is a block diagram of a viewport that shows a first contentportion and a portion of an ad of an information resource, according toan illustrative implementation;

FIG. 3B is a block diagram of the viewport shown in FIG. 3A that showsthe ad occupying a majority of the viewport, according to anillustrative implementation;

FIG. 3C is a block diagram of viewport shown in FIG. 3A that shows asecond portion of the ad and a second content portion on the informationresource, according to an illustrative implementation;

FIG. 4 is a flow diagram depicting a method controlling the display ofcontent of information resources, according to an illustrativeimplementation; and

FIG. 5 is a block diagram illustrating a general architecture for acomputer system that may be employed to implement elements of thesystems and methods described and illustrated herein, according to anillustrative implementation.

DETAILED DESCRIPTION

Following below are more detailed descriptions of various conceptsrelated to, and implementations of, methods, apparatuses, and systems ofcontrolling the display of content of information resources in acomputer network environment. The various concepts introduced above anddiscussed in greater detail below may be implemented in any of numerousways, as the described concepts are not limited to any particular mannerof implementation.

Interstitial ads typically may occupy the entirety of a viewport of anapplication executing on a device. Examples of such applicationsexecuting on a device include a mobile application executing on asmartphone or a web browser executing on a laptop. Interstitial ads havehigher conversion rates than many other forms of online advertising. Thepresent disclosure is directed towards technologies for providing aninterstitial ad like experience when displaying an information resourcethat includes freely scrollable content, such as a long articledisplayed on a webpage.

The technology relates to setting scroll ranges within an informationresource (such as a webpage or a page of an application) that includescontent that is unable to be displayed within a viewport of theapplication. All of the content of an information resource may not fitinto a viewport of the application, or stated in another way, the areaavailable for display through the application. A user may use thescrolling feature of the application to view various portions of thecontent. A scroll range may be set to define the range, amount, or areaof the information resource available for display. In this way, bystrategically setting the scroll range to extend from a first positionto a second position just after an ad, for example, if the ad is sizedto match the viewport of the browser or application via which theinformation resource is displayed, the ad will provide an interstitialad experience when the scroll box has reached the end of the scrollrange corresponding to the second location. The ad can include anactionable item configured to cause the application displaying theinformation resource to adjust the scroll range of the informationresource. When a user interacts with the actionable item, the scrollrange can be increased or extended, thereby allowing the user to viewadditional content of the information resource that may have been loadedwhen the information resource was loaded but was unable to be displayedwithin the viewport of the application because the additional contentwas outside the scroll range set by the application.

The technology described herein can be implemented by inserting a scriptinto the information resource, which can cause the application of thecomputing device via which to display the information resource, to setthe scroll range of the information resource, detect an interaction onthe actionable item, and then adjust the scroll range of the informationresource responsive to detecting the interaction on the actionable itemof the ad.

In some implementations, by implementing this technology, multiple pagesof content can be stitched together or otherwise included in a singlepage while still maintaining a content publisher's ability to offer aninterstitial ad experience. As interstitial ads may generate additionalrevenue for content publishers when compared to using traditional bannerads, providing webpages that are able to display interstitial ads orprovide an interstitial ad experience may be desirable to contentpublishers. Further, by implementing this technology, the same contentcan be displayed by requesting and retrieving only one page instead ofmultiple pages, thereby eliminating the load times between the differentpages. Further, by allowing a user to scroll back to the first end ofthe information resource after extending the scroll range, the user canview the ad by scrolling towards the first end of the informationresource. In contrast, in traditional interstitial ads, once a userdecides to skip the ad, the user can no longer visit the same ad.

At least one aspect is directed to a computerized method for controllingthe display of content of information resources. A data processingsystem including one or more processors can receive a request for aninformation resource from a client device via an application executingon the client device. The data processing system can transmit,responsive to receiving the request for the information resource fromthe client device, the information resource including at least a firstcontent portion, a second content portion, and a content displaymanagement script. The content display management script can includecomputer-executable instructions, which when executed by a processor ofthe client device, causes the application of the client device to set ascroll range of the information resource to a first range extending froma first location in the information resource to a second location in theinformation resource. The computer-executable instructions can cause theapplication of the client device to display, within a portion of theinformation resource between the first location and the second location,the first content portion and an ad. The ad can include an actionableitem to set the scroll range of the information resource to a secondrange. The computer-executable instructions can cause the application ofthe client device to set, responsive to detecting an interaction on theactionable item of the ad, the scroll range to the second rangeextending from the first location to a third location of the informationresource.

FIG. 1 is a block diagram depicting one implementation of an environmentfor controlling the display of content of information resources. Theenvironment 100 includes at least one data processing system 110. Thedata processing system 110 can include at least one processor and amemory, i.e., a processing circuit. The memory storesprocessor-executable instructions that, when executed by processor,cause the processor to perform one or more of the operations describedherein. The processor may include a microprocessor, application-specificintegrated circuit (ASIC), field-programmable gate array (FPGA), etc.,or combinations thereof. The memory may include, but is not limited to,electronic, optical, magnetic, or any other storage or transmissiondevice capable of providing the processor with program instructions. Thememory may further include a floppy disk, CD-ROM, DVD, magnetic disk,memory chip, ASIC, FPGA, read-only memory (ROM), random-access memory(RAM), electrically-erasable ROM (EEPROM), erasable-programmable ROM(EPROM), flash memory, optical media, or any other suitable memory fromwhich the processor can read instructions. The instructions may includecode from any suitable computer-programming language. The dataprocessing system can include one or more computing devices or serversthat can perform various functions. In some implementations, the dataprocessing system can include an advertising auction system configuredto host auctions. In some implementations, the data processing systemdoes not include the advertising auction system but is configured tocommunicate with the advertising auction system via the network 105.

The network 105 can include computer networks such as the internet,local, wide, metro or other area networks, intranets, satellitenetworks, other computer networks such as voice or data mobile phonecommunication networks, and combinations thereof. The data processingsystem 110 of the system 100 can communicate via the network 105, forinstance with at least one content provider computing device 115, atleast one content publisher computing device 120, or at least one clientdevice 125. The network 105 may be any form of computer network thatrelays information between the user computing device 115, dataprocessing system 110, and one or more content sources, for example, webservers, advertising servers, amongst others. For example, the network105 may include the Internet and/or other types of data networks, suchas a local area network (LAN), a wide area network (WAN), a cellularnetwork, satellite network, or other types of data networks. The network105 may also include any number of computing devices (e.g., computer,servers, routers, network switches, etc.) that are configured to receiveand/or transmit data within network 105. The network 105 may furtherinclude any number of hardwired and/or wireless connections. Forexample, the user computing device 115 may communicate wirelessly (e.g.,via WiFi, cellular, radio, etc.) with a transceiver that is hardwired(e.g., via a fiber optic cable, a CAT5 cable, etc.) to other computingdevices in network 105.

The content provider computing devices 115 can include servers or othercomputing devices operated by a content provider entity to providecontent items such as advertisements for display on informationresources at the client device 125. The content provided by the contentprovider computing device 115 can include third party content items orcreatives (e.g., ads) for display on information resources, such as awebsite or web page that includes primary content, e.g. content providedby the content publisher computing device 120. The content items canalso be displayed on a search results web page. For instance, thecontent provider computing device 115 can provide or be the source ofads or other content items for display in content slots of content webpages, such as a web page of a company where the primary content of theweb page is provided by the company, or for display on a search resultslanding page provided by a search engine. The content items associatedwith the content provider computing device 115 can be displayed oninformation resources other than web pages, such as content displayed aspart of the execution of an application on a smartphone or other clientdevice 125.

The content publisher computing devices 120 can include servers or othercomputing devices operated by a content publishing entity to provideprimary content for display via the network 105. For instance, thecontent publisher computing device 120 can include a web page operatorwho provides primary content for display on the web page. The primarycontent can include content other than that provided by the contentpublisher computing device 120, and the web page can include contentslots configured for the display of third party content items (e.g.,ads) from the content provider computing devices 115. For instance, thecontent publisher computing device 120 can operate the website of acompany and can provide content about that company for display on webpages of the website. The web pages can include content slots configuredfor the display of third party content items such as ads of the contentprovider computing device 115. In some implementations, the contentpublisher computing device 120 includes a search engine computing device(e.g. server) of a search engine operator that operates a search enginewebsite. The primary content of search engine web pages (e.g., a resultsor landing web page) can include results of a search as well as thirdparty content items displayed in content slots such as content itemsfrom the content provider computing device 115. In some implementations,the content publisher computing device 120 can include a server forserving video content.

The end user computing devices 125 can include computing devicesconfigured to communicate via the network 105 to display data such asthe content provided by the content publisher computing device 120(e.g., primary web page content or other information resources) and thecontent provided by the content provider computing device 115 (e.g.,third party content items such as ads configured for display in acontent slot of a web page). The client device 125, the content providercomputing device 115, and the content publisher computing device 120 caninclude desktop computers, laptop computers, tablet computers,smartphones, personal digital assistants, mobile devices, consumercomputing devices, servers, clients, digital video recorders, a set-topbox for a television, a video game console, or any other computingdevice configured to communicate via the network 105. The end usercomputing devices 125 can be communication devices through which an enduser can submit requests to receive content. The requests can berequests to a search engine and the requests can include search queries.In some implementations, the requests can include a request to access aweb page.

The content provider computing devices 115, the content publishercomputing device 120 and the end user computing devices 125 can includea processor and a memory, i.e., a processing circuit. The memory storesmachine instructions that, when executed by processor, cause processorto perform one or more of the operations described herein. The processormay include a microprocessor, application-specific integrated circuit(ASIC), field-programmable gate array (FPGA), etc., or combinationsthereof. The memory may include, but is not limited to, electronic,optical, magnetic, or any other storage or transmission device capableof providing the processor with program instructions. The memory mayfurther include a floppy disk, CD-ROM, DVD, magnetic disk, memory chip,ASIC, FPGA, read-only memory (ROM), random-access memory (RAM),electrically-erasable ROM (EEPROM), erasable-programmable ROM (EPROM),flash memory, optical media, or any other suitable memory from which theprocessor can read instructions. The instructions may include code fromany suitable computer-programming language.

The content provider computing devices 115, the content publishercomputing devices 120, and the end user computing devices 125 may alsoinclude one or more user interface devices. In general, a user interfacedevice refers to any electronic device that conveys data to a user bygenerating sensory information (e.g., a visualization on a display, oneor more sounds, etc.) and/or converts received sensory information froma user into electronic signals (e.g., a keyboard, a mouse, a pointingdevice, a touch screen display, a microphone, etc.). The one or moreuser interface devices may be internal to a housing of the contentprovider computing devices 115, the content publisher computing device120 and the end user computing devices 125 (e.g., a built-in display,microphone, etc.) or external to the housing of content providercomputing devices 115, the content publisher computing device 120 andthe end user computing devices 125 (e.g., a monitor connected to theuser computing device 115, a speaker connected to the user computingdevice 115, etc.), according to various implementations. For example,the content provider computing devices 115, the content publishercomputing device 120 and the end user computing devices 125 may includean electronic display, which visually displays web pages using webpagedata received from one or more content sources and/or from the dataprocessing system 110 via the network 105. In some implementations, acontent placement campaign manager or third-party content provider, suchas an advertiser, can communicate with the data processing system 110via the content provider computing devices 115. In some implementations,the advertiser can communicate with the data processing system 110 via auser interface displayed on the user interface devices of the contentprovider computing devices 115.

The data processing system 110 can include at least one server. Forinstance, the data processing system 110 can include a plurality ofservers located in at least one data center or server farm. In someimplementations, the data processing system 110 includes a contentplacement system, e.g., an ad server or ad placement system. The dataprocessing system 110 can include at least one content request module130, at least one content selection module 135, at least one scriptprovider module 140 and at least one database 145. The content itemselection 130, the content selection module 135 and the script providermodule 140 each can include at least one processing unit, server,virtual server, circuit, engine, agent, appliance, or other logic devicesuch as programmable logic arrays configured to communicate with thedatabase 145 and with other computing devices (e.g., the contentprovider computing device 115, the content publisher computing device120, or the client device 125) via the network 105.

The content request module 130, the content selection module 135, andthe script provider module 140 can include or execute at least onecomputer program or at least one script. The content request module 130,the content selection module 135, and the script provider module 140 canbe separate components, a single component, or part of the dataprocessing system 110. The content request module 130, the contentselection module 135, and the script provider module 140 can includecombinations of software and hardware, such as one or more processorsconfigured to execute one or more scripts.

The data processing system 110 can also include one or more contentrepositories or databases 145. The databases 145 can be local to thedata processing system 110. In some implementations, the databases 145can be remote to the data processing system 110 but can communicate withthe data processing system 110 via the network 105. The databases 145can include web pages, portions of webpages, content items (e.g.,advertisements), and content display management script, among others, toserve to a client device 125. In some implementations, the web pages,portions of webpages, and content items (e.g., advertisements) caninclude those illustratively depicted in FIGS. 3A-3C. Additional detailsof the contents of the database 145 will be provided below.

The content request module 130 can receive a request for content fromthe client device 125. The request for content can include a request foran information resource (e.g., a webpage or a page for an application)and a request for a content item (e.g., advertisement), among others.The request for content can include an address or identifier for theinformation resource or the content item. For example, the request forcontent can include Uniform Resource Locator (URL) referring to aspecific resource such as a webpage (e.g.,“https://www.example.com/homepage.html”). In some implementations, thecontent request module 130 can receive a request for an informationresource that can include an indicator indicating a content displaymanagement script. For example, the request for the information resourcecan include a header including an indicator specifying the contentrequest module 130 to send the content display management script alongwith the information resource to the client device 125.

The content selection module 135 can determine the content to transmitto the client device 125. The content selection module 135 can identifythe address or identifier for the information resource and the contentitem included in the request for content. The content selection module135 can access the database 145 and select the information resource orthe content item identified by the address or identifier. Theinformation resource can include one or more content portions providedby a content publisher 120. For example, a web page containing a newsarticle may be divided by every two to three paragraphs of text. Thecontent item can include static text or image ads, video ads, andaudiovisual ads provided by a content provider 115. In someimplementations, the content included in the information resource may bedivided by the content publisher into multiple content portions. In someimplementations, the content included in the information resource may bedivided by the content request module 130 into multiple contentportions. In some implementations, the content request module 130 candivide the content into multiple content portions by analyzing a DOMtree of the information resource. In particular, the content requestmodule 130 can identify certain DOM elements in the DOM tree and dividethe content based on the DOM elements. For instance, each DOM elementcorresponding to a paragraph or a title can be treated as an individualcontent portion.

In some implementations, the content selection module 135 can identify atype of request. In some implementations, the content selection module135 can determine whether to transmit the content display managementbased on the request for content received from the client device 125.The content selection module 135 can determine whether the type ofrequest corresponds to a request suitable to transmit a content displaymanagement script that can cause the client device 125 to provide aninterstitial ad experience by setting a scroll range based on a locationor a scroll position of a content item within the information resource.The location or scroll position can be, for example, the position of ascroll box relative to and within a scroll bar. The location or scrollposition can also be, for example, the pixel coordinate or scaledcoordinate of the number of pixels in the horizontal and vertical axeshidden from view to the left (x-axis) and above (y-axis) respectively.In some implementations, the content selection module 135 can alsoselect a content item for display within the information resource. Insome implementations, the content selection module 135 can receive thecontent item from an ad auction system that can select ads for displaybased on an ad auction. The ad auction system can select an ad from aplurality of ads based on ad auction parameters, such as bid values,size of ad, click-through rate (CTR), cost per mille (CPM), andimpression rate, among others.

The script provider module 140 can transmit the content to the clientdevice 125. The content transmitted to the client device 125 can includeat least a first content portion, a second content portion, and acontent display management script. The content display management scriptcan include computer-executable instructions. The computer-executableinstructions can include a script, such as HyperText Markup Language(HTML), Extensible HyperText Markup Language (XHTML), Extensible MarkupLanguage (XML), Cascading Style Sheets (CSS), and JavaScript, amongothers. The computer-executable instructions can be executed by anapplication of the client device, for example, the application thatcaused the client device to transmit the request for content received bythe content request module 130. The application can include, forexample, an Internet browser, mobile application, or any other computerprogram capable of reading and executing the computer-executableinstructions. In brief overview, the computer-executable instructions,when executed by a processor of the client device 125, can cause anapplication of the client device to: (a) set a scroll range of theinformation resource to a first range extending from a first location inthe information resource to a second location in the informationresource; (b) display, within a portion of the information resourcebetween the first location and the second location, the first contentportion and an ad, the ad including an actionable item to set the scrollrange of the information resource to a second range; and (c) responsiveto detecting an interaction on the actionable item of the ad, set thescroll range to the second range extending from the first location to athird location of the information resource. Additional details relatingto the functions of the content display management script are providedherein with respect to FIGS. 2 and 3A-3C.

Referring to FIG. 2, FIG. 2 is a block diagram depicting oneimplementation of a content display management system 200, according toan illustrative implementation. The content display management system200 can include an application 205, an information resource 210, ascroll range setting module 215, a content display module 220, and acontent item detection module 225. The content display management system200 can be run or otherwise be executed by one or more processors of acomputing device, such as those described below in FIG. 5. Theapplication 205 can include, for example, an Internet browser, mobileapplication, or any other computer program capable of executing orotherwise invoking computer-executable instructions, such as thecomputer-executable instructions included in the information resource210, the scroll range setting module 215, the content display module220, and the content item interaction detection module 225. Theinformation resource 210 can include one or more content portions, sucha first content portion and a second content portion. The informationresource 210 can specify the positions of the one or more contentportions and one or more content items. In some implementations, theinformation resource 210 can include a Document Object Model (DOM) treethat specifies the shape, size, and positions of one or more contentportions. In some implementations, the content portions can correspondto DOM elements that are included in the DOM tree. The informationresource 210 can be received by the application 205 along with thescroll range setting module 215, the content display module 220, and thecontent item interaction detection module 225.

Referring to FIGS. 3A-3C, FIGS. 3A-3C are displays each depicting aviewport 300 for controlling the display of content of informationresources, according to an illustrative implementation. The viewport 300can include the portion of the information resource 210 visible throughthe application 205. The viewport 300 can include, for example, thevisible area of the webpage (e.g., information resource 210) through anInternet browser (e.g., application 205). The viewport 300 can displayany portion of the information resource 210 visible through theapplication 205, including one or more content portions such as thefirst content portion 310A and the second content portion 310B, andcontent item 315 that can include an actionable item 320. The viewport300 of the application 205 can be adjusted, shifted, or otherwise bechanged by a scroll bar 305. The position of the scroll box 307 relativeto where the scroll box 307 is within the scroll bar 305 can indicatewhich portion of the information resource 210 is being displayed throughthe viewport 300. In some implementations, the scroll bar 305 can behorizontal and move along the horizontal axis of the informationresource 210. In some implementations, the application 205 can indicatethe scroll range of the information resource 210 available for scrollingvia the scroll bar 305. For example, if the scroll range is limited tothe top half of the information resource 210, the application 205 cangray out the bottom half of the scroll bar 305.

In overview, in FIG. 3A, the portion of the information resource 210visible through the viewport 300 includes the first content portion 310Aand the content item 315, with the majority of the viewport 300 coveredby the first content portion 310A. FIG. 3A may depict, for example, thetop portion of a webpage, such as the information resource 210. In FIG.3B, the portion of the information resource 210 visible through theviewport 300 includes the first content portion 310A and the contentitem 315 that can include the actionable item 320, with the majority ofthe viewport 300 covered by the content item 315. FIG. 3B may depict,for example, the portion of the information resource 210 visible throughthe viewport 300 when the scroll box 307 at the bottom of the scroll bar305, indicating that the application is at the end of the scroll rangeof the information resource 210 as specified by the content displaymanagement script. In FIG. 3C, the portion of the information resource210 visible through the viewport 300 includes the first content portion310A, the content item 315, and the second content portion 310B. FIG. 3Cmay depict, for example, the information resource 210 after aninteraction (e.g., click or screen tap) has been performed on theactionable item 320, thereby causing the scroll range of the applicationto expand and show the second content portion 310B.

Referring again to FIG. 2 in conjunction with FIGS. 3A-3C, the scrollrange setting module 215 can include instructions to cause the clientdevice 120 to set a scroll range of the information resource 210 to afirst scroll range. The scroll range can specify the dimensions or areaof the information resource 210 that may be available for scrolling. Insome implementations, the scroll range can be set based one or moreproperties of the information resource 210. For example, the scrollrange can be set, for example, using the overflow-y property of theinformation resource 210 in CSS. In some implementations, the scrollrange can be set using a scroll stop numerical parameter specifying arestriction of scrolling past the scroll stop numerical parameter. Thefirst range can extend from a first location in the information resource210 to a second location in the information resource 210. The firstlocation and the second location can each refer to pixel coordinates ora scaled coordinates (e.g., dots per inch) along the informationresource 210, for example, along the horizontal (x-axis) or the vertical(y-axis) of the information resource 210. In some implementations, thescroll range setting module 215 can cause the client device 120 toidentify the first location on the information resource 210 based on afirst end of the first content portion 310A. The scroll range settingmodule 215 can cause the client device 120 to also identify the secondlocation on the information resource based on a second end of thecontent item 315. For example, as depicted in FIG. 3A, if informationresource 210 specifies that the first content portion 310A and thecontent item 315 are sequentially positioned, the first location in theinformation resource 210 can be at the top position of the first contentportion 310A and the second location in the information resource 210 canbe at a location slightly below the bottom portion of the content item315.

In some implementations, the scroll range setting module 215 can includeinstructions to cause the client device 120 to access the sizeattributes of the first content portion 310A and the content item 315 todetermine the first location in the information resource 210 and thesecond location in the information resource 210. For example, the scrollrange setting module 215 can cause the client device 120 to read orotherwise determine the width and height attributes of the first contentportion 310A and the width and height attributes of the content item 315from the information resource 210. In this example, the scroll rangesetting module 215 can cause the client device 120 to set the firstlocation (e.g., pixel coordinate or scaled coordinate) of theinformation resource 210 to a value corresponding to a top of theinformation resource or a top position of the first content portion310A. The scroll range setting module 215 can cause the client device120 to set the second location of the information resource to a secondvalue by adding the two height attributes of the first content portion310A and the content item 315 to the value of the first location. Insome implementations, the scroll range setting module 215 can cause theclient device 120 to determine the scroll range based on the DOMelements that specify the shape, size, and positions or one or moreelements of the information resource 210. For example, the scroll rangesetting module 215 can cause the client device 120 to determine theplacement of the DOM elements, such as the first content portion 310Aand the content item 315, based on the rendering of the specificationsof the DOM elements. The scroll range setting module 215 can cause theclient device 120 to then render the DOM elements to determine theheights of the first content portion 310A and the content item 315 inthe information resource 210. Using the heights of the first contentportion 310A and the content item 315, the scroll range setting module215 can cause the client device 120 to set the first range.

In some implementations, the scroll range setting module 215 can includeinstructions to cause the client device 120 to determine a size of aviewport 300 of the application 205. The viewport 300 of the application205 can include the portion of the information resource 210 visible fromthe application 205. For example, the application 205 can display a800×300 pixel portion of a 900×1500 pixel sized information resource210. The size of the viewport 300 can include a pixel dimension (e.g., xby y) of portion of the information resource 210 visible through theapplication 205. The size of the viewport 300 can be identified oraccessed by the scroll range setting module 215 by determining theheight and width property of the information resource 210 from theapplication 205. For example, the scroll range setting module 215 cancause the client device 120 to invoke the function “getViewportSize” inJavaScript to obtain the size of the viewport 300. In someimplementations, the scroll range setting module 215 can cause theclient device 120 to determine the second location within theinformation resource 210, such that when the scroll position of theapplication is at the second location, the ad occupies more than apredetermined percentage of pixels defined by the viewport 300. Thepredetermined percentage of pixels can include, for example, 50%-100% ofthe viewport 300 of the application 205. In some implementations, thescroll range setting module 215 can cause the client device 120 todetermine the second location within the information resource 210, suchthat when a scroll position of the application 205 is at the secondlocation, the content item occupies substantially all of the viewport300. For example, the scroll range setting module 215 can cause theclient device 120 to set the second location within the informationresource 210 such that the content item occupies 80%-100% of theviewport 300.

It should be appreciated that in some implementations, a size of theviewport of an application may change based on the display of thecomputing device on which the application is executed. In someimplementations, the size of the viewport of an application can beadjusted by a user of the computing device. In some implementations,however, the viewport of the application is based on a size of a displayof the computing device on which the application is executing. As such,it is possible that the content management display script provided bythe data processing system 110 to include instructions in which theviewport of the application is predefined. In some implementations, thedata processing system 110 can determine, from a request for contentreceived from the computing device, a viewport size of the application.In some implementations, the data processing system 110 can determinethe viewport size via a database that includes a list of computingdevices and a corresponding display size. The viewport size can be basedon the display size of the computing device.

In some implementations, the scroll range setting module 215 can includeinstructions to cause the client device 120 to insert the content item315 between the first content portion 310A and the second contentportion 310B. The scroll range setting module 215 can cause the clientdevice 120 to determine the second location based on a position of thecontent item 315 within the information resource 210. In someimplementations, the scroll range setting module 215 can cause theclient device 120 to identify a content item slot (e.g., ad slot) withinthe information resource 210. The scroll range setting module 215 cancause the client device 120 to determine the position of the contentitem 315 based on the content item slot. For example, if the ad slot forthe information source 210 does not have a definite size or area,insertion of the content item 315 into the DOM elements of theinformation resource 210 may cause the position of the first contentportion 310A or the position of the second content portion 310B toshift. By determining or rendering the DOM elements, the scroll rangesetting module 215 can account for the lack of definite size of the ador ad slot and determine the shift in positions of the first contentportion 310A and the second content portion 310B, such as the change inpixel dimensions. The scroll range setting module 215 can cause theclient device to then determine the position change based on determiningor rendering the DOM elements with the content item 315 added. Based onthis determination, the scroll range setting module 215 can cause theclient device 120 to determine the second location.

In some implementations, the scroll range setting module 215 can includeinstructions to cause the client device 120 to restrict scrolling beyondthe first range on the information resource 120. In someimplementations, the scroll range setting module 215 can cause theclient device 120 to detect a scroll event on the information resource120. Responsive to detecting the scroll event on the informationresource 120, the scroll range setting module 215 can cause the clientdevice 120 to determine whether the scroll position of the application200 on the information resource 120 is at the first range or the scrollstop numerical parameter. Responsive to determining that the scrollposition is at the first range or the scroll stop numerical parameter,the scroll range setting module 215 can cause the client device 120 torestrict further scrolling and maintain the current scroll position.

The content display module 220 can include instructions to cause theclient device 120 to display the portion of the information resource 210defined by the first range. The first range can include a portion of theinformation resource 210 between the first location and the secondlocation. In some implementations, the content display module 220 cancause the client device 120 to display, within a portion of theinformation resource 210 between the first location and the secondlocation, the first content portion 310A and the content item 315. Forexample, the content display module 220 can cause the client device 120to display the first content portion 310A and the content item 315analogous to the illustration in FIG. 3A. In this example, the scrollrange set by the scroll set by the scroll range setting module 215 candefine the capability of moving or scrolling the scroll box 307 withinthe scroll bar 305.

The content item interaction detection module 225 can includeinstructions to cause the client device 120 to detect an interaction onthe actionable item 320 of the content item 315. The actionable item 320can include a button, a link, or any other element, or user interfaceitem capable of receiving the interaction, for example, via an inputdevice of the client device 125. In some implementations, the actionableitem 320 can be displayed on or adjacent to the content item 315. Forexample, as depicted in FIG. 3B, the actionable item 320 can bedisplayed on the content item 315, generally toward the bottom right ofthe content item 315. In some implementations, the actionable item 320may not be part of the content item 315. For example, the actionableitem 320 can be another element separate from the content item 315 inthe DOM elements of the information resource 210. In this example, theactionable item 320 can be displayed adjacent to the content item 315.In some implementations, the content item interaction detection module225 can cause the client device 120 to detect a user activation event ortriggering event. For example, the content item interaction detectionmodule 225 can detect a click event by receiving a trigger from a userinterface event handler or event listener that occurs on the actionableitem 320. In another example, the content item interaction detectionmodule 225 can cause the client device 120 to detect a screen touchevent at a position within the area specified by the DOM element for theactionable item 320.

In some implementations, the content item interaction detection module225 can include instructions to cause the client device 120 to removethe actionable item 320 from display on the information resource 210 inresponse to detecting the interaction on the actionable item 320 of thecontent item 315. For example, responsive to detecting the click event,the content item interaction detection module 225 can cause the clientdevice to deactivate, disable, hide, or otherwise cause the actionableitem 320 to disappear from display. In some implementations, responsiveto detecting the interaction on the actionable item 320 of the contentitem 315, the content item interaction detection module 225 can causethe client device to reset a size of the content item 315. For example,responsive to detecting a click event on the actionable item 320, thecontent item interaction detection module 225 can cause the clientdevice to reduce the height of the content item to hide the actionableitem 320 from display, as depicted in FIG. 3C. In some implementations,the content item interaction detection module 225 may not need to resizethe size of the content item 315. For example, if the actionable item320 is not a part of or displayed within the content item 315, thecontent item interaction detection module 225 can cause the clientdevice to maintain the size of the content item 315.

In some implementations, the content item interaction detection module225 can cause the client device 120 to determine an amount of time thatthe content item 315 has been displayed on the information resource 210.The content item interaction detection module 225 can cause the clientdevice 120 to determine whether the amount of time that the content item315 has been displayed on the information resource 210 or viewport 300exceeds a predefined time threshold. The predefined time threshold canrange from a 10 ms to 1 second to 10 seconds to 30 seconds to a minuteor even more than a minute. The content item interaction detectionmodule 225 can display the actionable item 320 and enable the actionableitem 320 for receiving an interaction responsive to determining that theamount of time exceeds a predefined time threshold. For example, supposethe predefined time threshold is 30 seconds. Once the amount of timethat the content item 315 has been displayed within the viewport 300 hasexceeded 30 seconds, the content item interaction detection module 225can modify the hidden attribute of the actionable item 320, therebycausing the actionable item 320 to display. The content item interactiondetection module 225 at this point can also cause the client device 120to enable the enable attribute of the actionable item 320, therebyallowing the actionable item 320 to receive the interaction. In someimplementations, the content item interaction detection module 225 cancause the client device 120 to enable the actionable item 320 based onan activation policy. The activation policy can include one or morerules for activating the actionable item 320. The one or more rules foractivating the actionable item 320 can be time-based, position-based,and scroll-based, among others. For example, the one or more rules ofthe activation policy can specify that a screen touch event occur in thecontent item 315 prior to enabling the actionable item.

The scroll range setting module 215 can cause the client device 120 toset a scroll range of the information resource 210 to a second scrollrange responsive to the content item interaction detection module 225causing the client device 120 to detecting the interaction on theactionable item 320. The second range can extend from the first locationin the information resource 210 to a third location in the informationresource 210. The third location can refer to a position along theinformation resource 210, for example, along the horizontal (x-axis) orthe vertical (y-axis) of the information resource 210. In someimplementations, the scroll range setting module 215 can cause theclient device 120 to identify the first location on the informationresource 210 based on a first end of the first content portion 310A. Thescroll range setting module 215 can also cause the client device 120 toidentify the third location on the information resource based on asecond end of the second content portion 310B. For example, as depictedin FIG. 3B, if information resource 210 specifies that the first contentportion 310A, the content item 315, and the second content portion 310Bare sequentially positioned, the first location of the scroll range canbe positioned at or before the the first content portion 310A and thethird location of the scroll range can be set at a position, forexample, slightly below the bottom portion of the second content portion310B. In some implementations, the scroll range setting module 215 canaccess or otherwise identify the size attributes of the first contentportion 310A and the second content portion 310B to determine the firstlocation in the information resource 210 and the third location (thelocation to which to extend the scroll range) in the informationresource 210. In some implementations, the scroll range setting module215 can access the size attributes of the information resource 210 todetermine a first end and a second end of the information resource 210.In some implementations, the third location can be set as the bottom ofthe information resource 210.

The content display module 220 can include instructions to cause theclient device 120 to display the portion of the information resource 210defined by the second range. The second range can include a portion ofthe information resource 210 between the first location and the thirdlocation. In some implementations, the content display module 220 cancause the client device 120 display, within a portion of the informationresource 210 between the first location and the third location, thefirst content portion 310A, the content item 315, and the second contentportion 310B. For example, the content display module 220 can cause theclient device 120 to display the first content portion 310A, the contentitem 315, and the second content portion 310B, analogous to theillustration in FIG. 3B. In this example, the scroll range set by thescroll range setting module 215 can cause the client device 120 todefine a range within which the scroll box 307 can move or scroll withinthe scroll bar 305.

In some implementations, the scroll range setting module 215 can includeinstructions to cause the client device 120 to insert one or morecontent items, each including an actionable item. In someimplementations, the scroll range setting module 215 can cause theclient device 120 to insert a second content item that can include asecond actionable item between the second location of the informationresource 210 and the third location of the information resource 210.Each of the one or more content items can have similar functionalitiesas described above with respect to the content item 315. The scrollrange setting module 215 or the application 205 can cause the clientdevice 120 to stitch together one or more content portions with one ormore content items, each pairing of the one or more content portionswith a respective content item of the one or more content items havingsimilar functionalities as those described above. For example, theinformation resource 120 can include a plurality of webpage articles,interspersed with ad slots. The bottom portion of a fourth ad between afourth article and a fifth article can correspond to a position at whichto set the initial scroll range. Responsive to a correspondingactionable item receiving a user interface event such as a click, thescroll range setting module 215 can set the scroll range such that thescroll bar 305 can allow the scroll box 307 to scroll up or past thefifth article in the application 205. In some implementations, thescroll range setting module 215 can insert one or more content itemsbetween the various content portions.

In some implementations, the content display management system 200 canbe implemented using the following pseudo-code:

1  first_range = first_content.height + ad.height 2  second_range =first_range + second_content.height 3  setscrollrange(first_range) 4  if(event on actionable_item) 5    setscrollrange(second_range)

In some other implementations, the content display management system 200can be implemented using the following pseudo-code:

1  first_range = first_content.height + ad.height 2  second_range =first_range + second_content.height 3  scroll-stop_range = first_range4  if ( onscrollevent & scroll_position >= scroll_stop_range) 5    if(event on actionable_item) 6      scroll_stop_range = second_range7    else 8      maintain scroll_position

Referring to FIG. 4, FIG. 4 is a flow diagram depicting a method 400 ofcontrolling the display of content of information resources. Inparticular, the FIG. 4 is a flow diagram depicting a method 400 ofsetting and adjusting a scroll range of an information resource based onone or more actions performed on actionable objects inserted within theinformation resource. The functionality described herein with respect tomethod 400 can be performed or otherwise executed by the data processingsystem 110 or client device 125 as shown in FIG. 1 or the contentdisplay management system 200 as shown in FIG. 2, or any combinationthereof. For example, FIG. 4 depicts the functionalities of the method400 distributed between the data processing system 110 and the clientdevice 125. In brief overview, the client device can transmit a requestfor content (BLOCK 405). The data processing system can receive therequest for content (BLOCK 410). The data processing system can transmitthe content with the content display management script (BLOCK 415). Theclient device can receive the content with the content displaymanagement script (BLOCK 420). The client device can set a scroll rangeto a first range (BLOCK 425). The client device can display the firstcontent portion and the content item (e.g., ad) (BLOCK 430). The clientdevice can detect an interaction on the actionable item on the contentitem (BLOCK 435). The client device can set the scroll range to a secondrange (BLOCK 440). The client device can display the second contentportion (BLOCK 445).

The client device can transmit a request for content to the dataprocessing system (BLOCK 405). The request for content can identify atype of device and a viewport size of the application, among others. Thetype of device for the client device can include, for example, a desktopcomputer, laptop computer, mobile phone, smartphone, and tablet, amongothers. The viewport size of the application can be either fixed orvariable for the type of device. For example, the viewport size for amobile phone application may be fixed, whereas the viewport size for anInternet browser on a laptop computer may be variable.

The data processing system can receive a request for content from theclient device (BLOCK 410). The request for content can include a requestfor an information resource (e.g., a webpage or a page for anapplication) and a request for a content item (e.g., advertisement),among others. The request for content can include an address oridentifier for the information resource or the content item. Forexample, the request for content can include Uniform Resource Locator(URL) referring to a specific resource such as a webpage (e.g.,“https://www.example.com/homepage.html”). In some implementations, thedata processing system can receive a request for an information resourcethat can include an indicator indicating a content display managementscript. For example, the request for the information resource caninclude a header including an indicator specifying the data processingsystem to send the content display management script along with theinformation resource to the client device.

The data processing system can determine the content to transmit to theclient device. The data processing system can identify the address oridentifier for the information resource and the content item included inthe request for content. The data processing system can access thedatabase 145 and select the information resource or the content itemidentified by the address or identifier. The information resource caninclude one or more content portions provided by a content publisher120. For example, a web page containing a news article may be divided byevery two to three paragraphs of text. The content item can includestatic text or image ads, video ads, and audiovisual ads provided by acontent provider 115. In some implementations, the content included inthe information resource may be divided by the content publisher intomultiple content portions. In some implementations, the content includedin the information resource may be divided by the data processing systeminto multiple content portions. In some implementations, the dataprocessing system can divide the content into multiple content portionsby analyzing a DOM tree of the information resource. In particular, thedata processing system can identify certain DOM elements in the DOM treeand divide the content based on the DOM elements. For instance, each DOMelement corresponding to a paragraph or a title can be treated as anindividual content portion.

In some implementations, the data processing system can identify a typeof request. In some implementations, the data processing system candetermine whether to transmit the content display management based onthe request for content received from the client device. The dataprocessing system can determine whether the type of request correspondsto a request suitable to transmit a content display management scriptthat can cause the client device to provide an interstitial adexperience by setting a scroll range based on a location or position ofa content item within the information resource. In some implementations,the data processing system can also select a content item for displaywithin the information resource. In some implementations, the dataprocessing system can receive the content item from an ad auction systemthat can select ads for display based on an ad auction. The ad auctionsystem can select an ad from a plurality of ads based on ad auctionparameters, such as bid values, size of ad, click-through rate (CTR),cost per mille (CPM), and impression rate, among others.

The data processing system can transmit the content that can include thecontent display management script to the client device (BLOCK 415). Theclient device can receive content that can include the content displaymanagement script (BLOCK 420). The content transmitted to the clientdevice can include at least a first content portion, a second contentportion, and a content display management script. The content displaymanagement script can include computer-executable instructions. Thecomputer-executable instructions can include a script, such as HyperTextMarkup Language (HTML), Extensible HyperText Markup Language (XHTML),Extensible Markup Language (XML), Cascading Styles Sheets (CSS), andJavaScript, among others. The computer-executable instructions can beexecuted by an application of the client device, for example, theapplication that caused the client device to transmit the request forcontent received by the data processing system. The application caninclude, for example, an Internet browser, mobile application, or anyother computer program capable of reading and executing thecomputer-executable instructions. In brief overview, thecomputer-executable instructions, when executed by a processor of theclient device, can cause an application of the client device to: (a) seta scroll range of the information resource to a first range extendingfrom a first location in the information resource to a second locationin the information resource; (b) display, within a portion of theinformation resource between the first location and the second location,the first content portion and an ad, the ad including an actionable itemto set the scroll range of the information resource to a second range;and (c) responsive to detecting an interaction on the actionable item ofthe ad, set the scroll range to the second range extending from thefirst location to a third location of the information resource.

The application can include, for example, an Internet browser, mobileapplication, or any other computer program capable of executing orotherwise invoking computer-executable instructions, such as thecomputer-executable instructions included in the content displaymanagement scrip. The information resource can include one or morecontent portions, such a first content portion and a second contentportion. The information resource can specify the positions of the oneor more content portions and one or more content items. In someimplementations, the information resource can include a DOM tree thatspecifies the shape, size, and positions of one or more contentportions. In some implementations, the content portions can correspondto DOM elements that are included in the DOM tree. The informationresource can be received by the application along with the dataprocessing system, the data processing system, and the data processingsystem.

The client device can set a scroll range of the information resource toa first scroll range (BLOCK 425). The scroll range can specify thedimensions or area of the information resource that may be available forscrolling. In some implementations, the scroll range can be set basedone or more properties of the information resource. For example, thescroll range can be set, for example, using the overflow-y property ofthe information resource in CSS. In some implementations, the scrollrange can be set using a scroll stop numerical parameter specifying arestriction of scrolling past the scroll stop numerical parameter. Thefirst range can extend from a first location in the information resourceto a second location in the information resource. The first location andthe second location can each refer to positions along the informationresource, for example, along the horizontal (x-axis) or the vertical(y-axis) of the information resource. In some implementations, theclient device can identify the first location on the informationresource based on a first end of the first content portion. The clientdevice can also identify the second location on the information resourcebased on a second end of the content item. For example, if theinformation resource specifies that the first content portion and thecontent item are sequentially positioned, the first location in theinformation resource can be at the top position of the first contentportion and the second location in the information resource can be at alocation slightly below the bottom portion of the content item.

In some implementations, the client device can access the sizeattributes of the first content portion and the content item todetermine the first location in the information resource and the secondlocation in the information resource. For example, the client device canread or otherwise determine the width and height attributes of the firstcontent portion and the width and height attributes of the content itemfrom the information resource. In this example, the scroll range settingmodule can set the first location (e.g., pixel coordinate or scaledcoordinate) of the information resource to a value corresponding to atop of the information resource or a top position of the first contentportion. The client device can set the second location of theinformation resource to a second value by adding the two heightattributes of the first content portion and the content item to thevalue of the first location. In some implementations, the client devicecan determine the scroll range based on the DOM elements that specifythe shape, size, and positions or one or more elements of theinformation resource. For example, the client device can determine theplacement of the DOM elements, such as the first content portion and thecontent item, based on the rendering of the specifications of the DOMelements. The client device can then render the DOM elements todetermine the heights of the first content portion and the content itemin the information resource. Using the heights of the first contentportion and the content item, the client device can set the first range.

In some implementations, the client device can determine a size of aviewport of the application. The viewport of the application can includethe portion of the information resource visible from the application.For example, the application can display a 800×300 pixel portion of a900×1500 pixel sized information resource. The size of the viewport caninclude a pixel dimension (e.g., x by y) of portion of the informationresource visible through the application. The size of the viewport canbe identified or accessed by the client device by determining the heightand width property of the information resource from the application. Forexample, the client device can invoke the function “getViewportSize” inJavaScript to obtain the size of the viewport. In some implementations,the client device can determine the second location within theinformation resource, such that when the scroll position of theapplication is at the second location, the ad occupies more than apredetermined percentage of pixels defined by the viewport. Thepredetermined percentage of pixels can include, for example, 50%-100% ofthe viewport of the application. In some implementations, the clientdevice can determine the second location within the informationresource, such that when a scroll position of the application is at thesecond location, the content item occupies substantially all of theviewport. For example, the client device can set the second locationwithin the information resource such that the content item occupies80%-100% of the viewport.

In some implementations, the client device can insert the content itembetween the first content portion and the second content portion. Theclient device can determine the second location based on a position ofthe content item within the information resource. In someimplementations, the client device can identify a content item slot(e.g., ad slot) within the information resource. The client device candetermine the position of the content item based on the content itemslot. For example, if the ad slot for the information source does nothave a definite size or area, insertion of the content item into the DOMelements of the information resource may cause the position of the firstcontent portion or the position of the second content portion to shift.By determining or rendering the DOM elements, the client device canaccount for the lack of definite size of the ad or ad slot and determinethe shift in positions of the first content portion and the secondcontent portion, such as the change in pixel dimensions. The clientdevice can then determine the position change based on determining orrendering the DOM elements with the content item added. Based on thisdetermination, the client device can determine the second location.

In some implementations, the client device can restrict scrolling beyondthe first range on the information resource based on the scroll range.In some implementations, the client device can detect a scroll event onthe information resource. Responsive to detecting the scroll event onthe information resource, the client device can determine whether thescroll position of the application on the information resource is at thefirst range or the scroll stop numerical parameter. Responsive todetermining that the scroll position is at the first range or the scrollstop numerical parameter, the client device can restrict furtherscrolling and maintain the current scroll position.

The client device can display the portion of the information resourcedefined by the first range, such as the first content portion and thecontent item (BLOCK 430). The first range can include a portion of theinformation resource between the first location and the second location.In some implementations, the client device can display, within a portionof the information resource between the first location and the secondlocation, the first content portion and the content item. For example,the client device can display the first content portion and the contentitem. In this example, the scroll range set by the scroll set by theclient device can define a range within which the scroll box can move orscroll within the scroll bar.

The client device can detect an interaction on the actionable item ofthe content item (BLOCK 435). The actionable item can include a button,a link, or any other element, or user interface item capable ofreceiving the interaction, for example, via an input device of theclient device. In some implementations, the actionable item can bedisplayed on or adjacent to the content item. For example, theactionable item can be displayed on the content item, generally towardthe bottom right of the content item. In some implementations, theactionable item may not be part of the content item. For example, theactionable item can be another element separate from the content item inthe DOM element DOM elements of the information resource. In thisexample, the actionable item can be displayed adjacent to the contentitem. In some implementations, the client device can detect a useractivation event or triggering event. For example, the client device candetect a click event by receiving a trigger from a user interface eventhandler or event listener that occurs on the actionable item. In anotherexample, the client device can detect a screen touch event at a positionwithin the area specified by the DOM element for the actionable item.

In some implementations, the client device can remove the actionableitem from display on the information resource in response to detectingthe interaction on the actionable item of the content item. For example,responsive to detecting the click event, the client device candeactivate, disable, hide, or otherwise cause the actionable item todisappear from display. In some implementations, responsive to detectingthe interaction on the actionable item of the content item, the clientdevice can reset a size of the content item. For example, responsive todetecting a click event on the actionable item, the client device canreduce the height of the content item to hide the actionable item fromdisplay. In some implementations, the client device may not need toresize the size of the content item. For example, if the actionable itemis not a part of or displayed within the content item, the client devicecan maintain the size of the content item.

In some implementations, the client device can determine an amount oftime that the content item has been displayed on the informationresource. The client device can determine whether the amount of timethat the content item has been displayed on the information resource orviewport exceeds a predefined time threshold. The predefined timethreshold can range from a 10 ms to 1 second to 10 seconds to 30 secondsto a minute or even more than a minute. The client device can displaythe actionable item and enable the actionable item for receiving aninteraction responsive to determining that the amount of time exceeds apredefined time threshold. For example, suppose the predefined timethreshold is 30 seconds. Once the amount of time that the content itemhas been displayed within the viewport has exceeded 30 seconds, theclient device can modify the hidden attribute of the actionable item,thereby causing the actionable item to display. The client device atthis point can also enable the enable attribute of the actionable item,thereby allowing the actionable item to receive the interaction. In someimplementations, the client device can enable the actionable item basedon an activation policy. The activation policy can include one or morerules for activating the actionable item. The one or more rules foractivating the actionable item can be time-based, position-based, andscroll-based, among others. For example, the one or more rules of theactivation policy can specify that a screen touch event occur in thecontent item prior to enabling the actionable item.

The client device can set a scroll range of the information resource toa second scroll range, responsive to the content item interaction moduledetecting the interaction on the actionable item of the content item(BLOCK 440). The second range can extend from the first location in theinformation resource to a third location in the information resource.The third location can refer to a position along the informationresource, for example, along the horizontal (x-axis) or the vertical(y-axis) of the information resource. In some implementations, theclient device can identify the first location on the informationresource based on a first end of the first content portion. The clientdevice can also identify the third location on the information resourcebased on a second end of the second content portion. For example, ifinformation resource specifies that the first content portion, thecontent item, and the second content portion are sequentiallypositioned, the first location of the scroll range can be positioned ator before the first content portion and the third location of the scrollrange can be set at a position, for example, slightly below the bottomportion of the second content portion. In some implementations, theclient device can access or otherwise identify the size attributes ofthe first content portion and the second content portion to determinethe first location in the information resource and the third location(the location to which to extend the scroll range) in the informationresource. In some implementations, the client device can access the sizeattributes of the information resource to determine a first end and asecond end of the information resource. In some implementations, thethird location can be set as the bottom of the information resource.

The client device can display the portion of the information resourcedefined by the second range, such as the second content portion (BLOCK445). The second range can include a portion of the information resourcebetween the first location and the third location. In someimplementations, the client device can display, within a portion of theinformation resource between the first location and the third location,the first content portion, the content item, and the second contentportion. For example, the client device can display the first contentportion, the content item, and the second content portion. In thisexample, the scroll range set by the client device can define thecapability of moving or scrolling the scroll box within the scroll bar.

In some implementations, the client device to insert one or more contentitems, each including an actionable item. In some implementations, theclient device can insert a second content item that can include a secondactionable item between the second location of the information resourceand the third location of the information resource. Each of the one ormore content items can have similar functionalities as described abovewith respect to the content item. The application of the client canstitch together one or more content portions with one or more contentitems, each pairing of the one or more content portions with arespective content item of the one or more content items having similarfunctionalities as those described above. For example, the informationresource can include a plurality of webpage articles, interspersed withad slots. The bottom portion of a fourth ad between a fourth article anda fifth article can correspond to a position at which to set the initialscroll range. Responsive to a corresponding actionable item receiving auser interface event such as a click, the client device can set thescroll range such that the scroll bar can allow the scroll box to scrollup or past the fifth article in the application. In someimplementations, the client device can insert one or more content itemsbetween the various content portions.

FIG. 5 shows the general architecture of an illustrative computer system500 that may be employed to implement any of the computer systemsdiscussed herein (including the system 110 and its components such asthe content request module 130, the content selection module 135, andscript provider module 140) in accordance with some implementations. Thecomputer system 500 can be used to provide information via the network105 for display. The computer system 500 of FIG. 5 comprises one or moreprocessors 520 communicatively coupled to memory 525, one or morecommunications interfaces 505, and one or more output devices 510 (e.g.,one or more display units) and one or more input devices 515. Theprocessors 520 can be included in the data processing system 110 or theother components of the system 110 such as the content request module130, the content selection module 135, and the script provider module140.

In the computer system 500 of FIG. 5, the memory 525 may comprise anycomputer-readable storage media, and may store computer instructionssuch as processor-executable instructions for implementing the variousfunctionalities described herein for respective systems, as well as anydata relating thereto, generated thereby, or received via thecommunications interface(s) or input device(s) (if present). Referringagain to the system 110 of FIG. 1, the data processing system 110 caninclude the memory 525 to store information related to the availabilityof inventory of one or more content units, reservations of one or morecontent units, among others. The memory 525 can include the database145. The processor(s) 520 shown in FIG. 5 may be used to executeinstructions stored in the memory 525 and, in so doing, also may readfrom or write to the memory various information processed and orgenerated pursuant to execution of the instructions.

The processor 520 of the computer system 500 shown in FIG. 5 also may becommunicatively coupled to or control the communications interface(s)505 to transmit or receive various information pursuant to execution ofinstructions. For example, the communications interface(s) 505 may becoupled to a wired or wireless network, bus, or other communicationmeans and may therefore allow the computer system 500 to transmitinformation to or receive information from other devices (e.g., othercomputer systems). While not shown explicitly in the system of FIG. 1,one or more communications interfaces facilitate information flowbetween the components of the system 50. In some implementations, thecommunications interface(s) may be configured (e.g., via varioushardware components or software components) to provide a website as anaccess portal to at least some aspects of the computer system 500.Examples of communications interfaces 505 include user interfaces (e.g.,web pages), through which the user can communicate with the dataprocessing system 50.

The output devices 510 of the computer system 500 shown in FIG. 5 may beprovided, for example, to allow various information to be viewed orotherwise perceived in connection with execution of the instructions.The input device(s) 515 may be provided, for example, to allow a user tomake manual adjustments, make selections, enter data, or interact in anyof a variety of manners with the processor during execution of theinstructions. Additional information relating to a general computersystem architecture that may be employed for various systems discussedherein is provided further herein.

Implementations of the subject matter and the operations described inthis specification can be implemented in digital electronic circuitry,or in computer software embodied on a tangible medium, firmware, orhardware, including the structures disclosed in this specification andtheir structural equivalents, or in combinations of one or more of them.Implementations of the subject matter described in this specificationcan be implemented as one or more computer programs, i.e., one or moremodules of computer program instructions, encoded on computer storagemedium for execution by, or to control the operation of, data processingapparatus. The program instructions can be encoded on anartificially-generated propagated signal, e.g., a machine-generatedelectrical, optical, or electromagnetic signal that is generated toencode information for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can include a source or destination of computer programinstructions encoded in an artificially-generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (e.g., multiple CDs, disks, orother storage devices).

The features disclosed herein may be implemented on a smart televisionmodule (or connected television module, hybrid television module, etc.),which may include a processing module configured to integrate internetconnectivity with more traditional television programming sources (e.g.,received via cable, satellite, over-the-air, or other signals). Thesmart television module may be physically incorporated into a televisionset or may include a separate device such as a set-top box, Blu-ray orother digital media player, game console, hotel television system, andother companion device. A smart television module may be configured toallow viewers to search and find videos, movies, photos and othercontent on the web, on a local cable TV channel, on a satellite TVchannel, or stored on a local hard drive. A set-top box (STB) or set-topunit (STU) may include an information appliance device that may containa tuner and connect to a television set and an external source ofsignal, turning the signal into content which is then displayed on thetelevision screen or other display device. A smart television module maybe configured to provide a home screen or top level screen includingicons for a plurality of different applications, such as a web browserand a plurality of streaming media services, a connected cable orsatellite media source, other web “channels”, etc. The smart televisionmodule may further be configured to provide an electronic programmingguide to the user. A companion application to the smart televisionmodule may be operable on a mobile computing device to provideadditional information about available programs to a user, to allow theuser to control the smart television module, etc. In alternateimplementations, the features may be implemented on a laptop computer orother personal computer, a smartphone, other mobile phone, handheldcomputer, a tablet PC, or other computing device.

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The terms “data processing apparatus”, “data processing system”, “userdevice” or “computing device” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application-specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures. The content request module130, the content selection module 135, and the script provider module140 can include or share one or more data processing apparatuses,computing devices, or processors.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub-programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatuses can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto-optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), for example. Devicessuitable for storing computer program instructions and data include allforms of non-volatile memory, media and memory devices, including by wayof example semiconductor memory devices, e.g., EPROM, EEPROM, and flashmemory devices; magnetic disks, e.g., internal hard disks or removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube), plasma, or LCD(liquid crystal display) monitor, for displaying information to the userand a keyboard and a pointing device, e.g., a mouse or a trackball, bywhich the user can provide input to the computer. Other kinds of devicescan be used to provide for interaction with a user as well; for example,feedback provided to the user can include any form of sensory feedback,e.g., visual feedback, auditory feedback, or tactile feedback; and inputfrom the user can be received in any form, including acoustic, speech,or tactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Implementations of the subject matter described in this specificationcan be implemented in a computing system that includes a back-endcomponent, e.g., as a data server, or that includes a middlewarecomponent, e.g., an application server, or that includes a front-endcomponent, e.g., a client computer having a graphical user interface ora Web browser through which a user can interact with an implementationof the subject matter described in this specification, or anycombination of one or more such back-end, middleware, or front-endcomponents. The components of the system can be interconnected by anyform or medium of digital data communication, e.g., a communicationnetwork. Examples of communication networks include a local area network(“LAN”) and a wide area network (“WAN”), an inter-network (e.g., theInternet), and peer-to-peer networks (e.g., ad hoc peer-to-peernetworks).

The computing system such as system 500 or system 110 can includeclients and servers. For example, the data processing system 110 caninclude one or more servers in one or more data centers or server farms.A client and server are generally remote from each other and typicallyinteract through a communication network. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someimplementations, a server transmits data (e.g., an HTML page) to aclient device (e.g., for purposes of displaying data to and receivinguser input from a user interacting with the client device). Datagenerated at the client device (e.g., a result of the user interaction)can be received from the client device at the server.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular implementations of the systems andmethods described herein. Certain features that are described in thisspecification in the context of separate implementations can also beimplemented in combination in a single implementation. Conversely,various features that are described in the context of a singleimplementation can also be implemented in multiple implementationsseparately or in any suitable subcombination. Moreover, althoughfeatures may be described above as acting in certain combinations andeven initially claimed as such, one or more features from a claimedcombination can in some cases be excised from the combination, and theclaimed combination may be directed to a subcombination or variation ofa subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In some cases, the actions recited in the claims can beperformed in a different order and still achieve desirable results. Inaddition, the processes depicted in the accompanying figures do notnecessarily require the particular order shown, or sequential order, toachieve desirable results.

In certain circumstances, multitasking and parallel processing may beadvantageous. Moreover, the separation of various system components inthe implementations described above should not be understood asrequiring such separation in all implementations, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products. For example, the contentrequest module 130, the content selection module 135, and the scriptprovider module 140 can be part of the data processing system 110, asingle module, a logic device having one or more processing modules, oneor more servers, or part of a search engine.

Having now described some illustrative implementations andimplementations, it is apparent that the foregoing is illustrative andnot limiting, having been presented by way of example. In particular,although many of the examples presented herein involve specificcombinations of method acts or system elements, those acts and thoseelements may be combined in other ways to accomplish the sameobjectives. Acts, elements and features discussed only in connectionwith one implementation are not intended to be excluded from a similarrole in other implementations or implementations.

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including” “comprising” “having” “containing” “involving”“characterized by” “characterized in that” and variations thereofherein, is meant to encompass the items listed thereafter, equivalentsthereof, and additional items, as well as alternate implementationsconsisting of the items listed thereafter exclusively. In oneimplementation, the systems and methods described herein consist of one,each combination of more than one, or all of the described elements,acts, or components.

Any references to implementations or elements or acts of the systems andmethods herein referred to in the singular may also embraceimplementations including a plurality of these elements, and anyreferences in plural to any implementation or element or act herein mayalso embrace implementations including only a single element. Referencesin the singular or plural form are not intended to limit the presentlydisclosed systems or methods, their components, acts, or elements tosingle or plural configurations. References to any act or element beingbased on any information, act or element may include implementationswhere the act or element is based at least in part on any information,act, or element.

Any implementation disclosed herein may be combined with any otherimplementation, and references to “an implementation,” “someimplementations,” “an alternate implementation,” “variousimplementation,” “one implementation” or the like are not necessarilymutually exclusive and are intended to indicate that a particularfeature, structure, or characteristic described in connection with theimplementation may be included in at least one implementation. Suchterms as used herein are not necessarily all referring to the sameimplementation. Any implementation may be combined with any otherimplementation, inclusively or exclusively, in any manner consistentwith the aspects and implementations disclosed herein.

References to “or” may be construed as inclusive so that any termsdescribed using “or” may indicate any of a single, more than one, andall of the described terms.

Where technical features in the drawings, detailed description or anyclaim are followed by reference signs, the reference signs have beenincluded for the sole purpose of increasing the intelligibility of thedrawings, detailed description, and claims. Accordingly, neither thereference signs nor their absence have any limiting effect on the scopeof any claim elements.

The systems and methods described herein may be embodied in otherspecific forms without departing from the characteristics thereof.Although the examples provided herein relate to controlling the displayof content of information resources, the systems and methods describedherein can include applied to other environments. The foregoingimplementations are illustrative rather than limiting of the describedsystems and methods. Scope of the systems and methods described hereinis thus indicated by the appended claims, rather than the foregoingdescription, and changes that come within the meaning and range ofequivalency of the claims are embraced therein.

What is claimed is:
 1. A method of controlling the display of content ofinformation resources, comprising: receiving, by one or more serversincluding one or more processors, a request for an information resourcefrom an application executing on a client device; and transmitting, bythe one or more servers, the information resource to the client device,the information resource including at least a first content portion, asecond content portion, and a content display management script, thecontent display management script including computer-executableinstructions, which when executed by a processor of the client device,causes the application of the client device to: set a scroll range ofthe information resource to a first range extending from a firstlocation in the information resource to a second location in theinformation resource to allow scrolling through the first contentportion and a content item and to restrict scrolling onto the secondcontent portion; permit, based on the scroll range set to the firstrange, display of the first content portion and the content item betweenthe first location and the second location of the information resource,the content item including an actionable item configured to cause theapplication to set the scroll range of the information resource to asecond range extending from the first location to a third location; andresponsive to detecting an interaction on the actionable item of thecontent item, set the scroll range to the second range extending fromthe first location to the third location of the information resource toallow scrolling through the first content portion, the content item, andthe second content portion while maintaining a current scroll positionwithin the information resource.
 2. The method of claim 1, wherein thecomputer-executable instructions of the content display managementscript further causes the application of the client device to: identifythe first location in the information resource based on a first end ofthe first content portion; and identify the second location in theinformation resource based on a second end of the content item.
 3. Themethod of claim 1, wherein the computer-executable instructions of thecontent display management script further causes the application of theclient device to: remove the actionable item from display on theinformation resource responsive to detecting the interaction on theactionable item of the content item from the client device.
 4. Themethod of claim 1, wherein the computer-executable instructions of thecontent display management script further causes the application of theclient device to: determine an amount of time that the content item hasbeen displayed on the information resource; and responsive todetermining that the amount of time exceeds a predefined time threshold,enable the actionable item on the content item to receive theinteraction.
 5. The method of claim 1, wherein the computer-executableinstructions of the content display management script further causes theapplication of the client device to: insert the content item between thefirst content portion and the second content portion; and identify thesecond location based on a position of the content item within theinformation resource.
 6. The method of claim 5, wherein inserting thecontent item between the first content portion and the second contentportion includes: determining a size of a viewport of the application;and determining the second location within the information resource suchthat when a scroll position of the application is at the secondlocation, the content item occupies more than a predetermined percentageof pixels defined by the viewport.
 7. The method of claim 1, wherein thecomputer-executable instructions of the content display managementscript further causes the application of the client device to: insert,for display, a second content item including a second actionable itembetween the second location of the information resource and the thirdlocation of the information resource; and responsive to detecting asecond interaction on the second actionable item of the second contentitem, set the scroll range to a third range extending from the firstlocation to a fourth location of the information resource.
 8. A methodof controlling the display of content of information resources,comprising: receiving, by a client device including one or moreprocessors, an information resource, the information resource includingat least a first content portion, a second content portion, and acontent display management script; invoking, responsive to receiving theinformation resource, by an application of the client device, thecontent display management script; setting, responsive to invoking thecontent display management script, by the client device, a scroll rangeof the information resource to a first range extending from a firstlocation in the information resource to a second location in theinformation resource to allow scrolling through the first contentportion and a content item and to restrict scrolling onto the secondcontent portion; permitting, by the client device, based on the scrollrange for scroll access set to the first range, display of the firstcontent portion and a content item between the first location and thesecond location of the information resource, the content item includingan actionable item configured to set the scroll range of the informationresource to a second range extending from the first location to a thirdlocation; and setting, responsive to detecting the interaction on theactionable item of the content item, by the client device, the scrollrange to the second range extending from the first location to the thirdlocation of the information resource to allow scrolling through thefirst content portion, the content item, and the second content portionwhile maintaining a current scroll position within the informationresource.
 9. The method of claim 8, further comprising: identifying, bythe client device, the first location in the information resource basedon a first end of the first content portion; and identifying, by theclient device, the second location in the information resource based ona second end of the content item.
 10. The method of claim 8, furthercomprising: removing, by the client device, the actionable item fromdisplay on the information resource responsive to detecting theinteraction on the actionable item of the content item from the clientdevice.
 11. The method of claim 8, further comprising: determining, bythe client device, an amount of time that the content item has beendisplayed on the information resource; and enabling, responsive todetermining that the amount of time exceeds a predefined time threshold,by the client device, the actionable item on the content item to receivethe interaction.
 12. The method of claim 8, further comprising:determining, by the client device, a size of a viewport of theapplication; and determining, by the client device, the second locationwithin the information resource such that when a scroll position of theapplication is at the second location, the content item occupies morethan a predetermined percentage of pixels defined by the viewport. 13.The method of claim 8, further comprising: inserting, by the clientdevice, for display, a second content item including a second actionableitem between the second location of the information resource and thethird location of the information resource; and setting, by the clientdevice, responsive to detecting a second interaction on the secondactionable item of the second content item, the scroll range to a thirdrange extending from the first location to a fourth location of theinformation resource.
 14. A system for controlling the display ofcontent of the information resource, comprising: a scroll range settingmodule executed on one or more processors that sets a scroll range of aninformation resource including at least a first content portion and asecond content portion to a first range extending from a first locationin the information resource to a second location in the informationresource to allow scrolling through the first content portion and acontent item and to restrict scrolling onto the second content portion;a content display module executed on the one or more processors thatpermits, based on the scroll range for scroll access set to the firstrange, display of the first content portion and a content item betweenthe first location and the second location of the information resource,the content item including an actionable item configured to set thescroll range of the information resource to a second range extendingfrom the first location to a third location; and a content iteminteraction detection module executed on the one or more processors thatdetects an interaction on the actionable item of the content item,wherein the scroll range setting module sets the scroll range to thesecond range extending from the first location to the third location ofthe information resource to allow scrolling through the first contentportion, the content item, and the second content portion, responsive todetecting an interaction on the actionable item of the content itemwhile maintaining a current scroll position within the informationresource.
 15. The system of claim 14, wherein the scroll range settingmodule: identifies the first location in the information resource basedon an initial end of the first content portion; and identifies thesecond location in the information resource based on a final end of thecontent item.
 16. The system of claim 14, wherein the content iteminteraction detection module: removes the actionable item from displayon the information resource responsive to detecting the interaction onthe actionable item of the content item from the client device.
 17. Thesystem of claim 14, wherein the content item interaction detectionmodule: determines an amount of time that the first content portion hasbeen provided for display on the information resource; and enables,responsive to determining that the amount of time exceeds a predefinedtime threshold, the actionable item on the content item to receive theinteraction.
 18. The system of claim 14, wherein the scroll rangesetting module inserts the content item between the first contentportion and the second content portion and determines the secondlocation based on a position of the content item within the informationresource.
 19. The system of claim 14, wherein the scroll range settingmodule: determines a size of a viewport of the application; anddetermines the second location within the information resource such thatwhen a scroll position of the application is at the second location, thecontent item occupies more than a predetermined percentage of pixelsdefined by the viewport.
 20. The system of claim 14, wherein the scrollrange setting module: inserts, for display, a second content itemincluding a second actionable item between the second location of theinformation resource and the third location of the information resource;and wherein the scroll range setting module sets, responsive todetecting a second interaction on the second actionable item of thesecond content item, the scroll range to a third range extending fromthe first location to a fourth location of the information resource.